#include "Celula.h"

using namespace std;

Celula::Celula()
{

	linha_1="   ";
	linha_2="   ";
	linha_3="   ";

}

Celula::~Celula()
{
}

//------------------------GETS------------------------------------
string Celula::getlinha_1(){
	return linha_1;
}

string Celula::getlinha_2(){
	return linha_2;
}

string Celula::getlinha_3(){
	return linha_3;
}

int Celula::getcor(){
	return cor;
}


//-----------------------SETS------------------------------------
void Celula::setlinha_1(string linha){
	linha_1=linha;
}

void Celula::setlinha_2(string linha){
	linha_2=linha;
}

void Celula::setlinha_3(string linha){
	linha_3=linha;
}

void Celula::setcor(int c){
	cor=c;
}


//----------------------FUNCOES------------------------------------
bool Celula::adiciona_castelo(Castelo *c,int color){

	if(castelo!=NULL) { 
		castelo=c;

		cor_antiga=cor; //guarda cor antiga, para remover
		cor=color;

		string estado;
		estado = to_string(castelo->getEstado());

		linha_1="EST";
		linha_2=castelo->getId();
		linha_3=estado;

		return true;
	}
	return false;
}

bool Celula::adiciona_soldado(Soldado s){

	soldado.push_back(s);	

	string saude;
	saude = to_string(s.getSaude());

	linha_1="UNI";
	linha_2=s.getId();
	linha_3=" " + saude;
	return true;
}

void Celula::remover_castelo(){
	castelo=NULL;
	linha_1="   ";
	linha_2="   ";
	linha_3="   ";
	cor=cor_antiga;
}

void Celula::remover_soldado(Soldado s){
	
	linha_1="   ";
	linha_2="   ";
	linha_3="   ";

	if(soldado.size()==1){
		soldado.clear();
		return;
	}

	int pos = procurasoldado(s.getnserie());
	if(pos==-1)
		return;

	soldado.erase(soldado.begin()+pos);

}

int Celula::procurasoldado(int nserie){
	for(int i=0; i<soldado.size(); i++){
		if(nserie==soldado[i].getnserie())
			return i;
	}
	return -1;
}

bool Celula::move_soldado(int nserie){
	//Soldado s;

	//procurasoldado(nserie);
	
	//apagar o que esta nas celulas
	setlinha_1("   ");
	setlinha_2("   ");
	setlinha_3("   ");
	return true;
}

